package com.cleverest.cleverestdiary.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.security.NoSuchAlgorithmException;

public interface FileService {

    /**
     * 计算文件的 MD5 值
     *
     * @param file 要计算的文件
     * @return 文件的 MD5 值
     * @throws IOException              如果读取文件发生异常
     * @throws NoSuchAlgorithmException 如果找不到 MD5 算法
     */
    String getFileMD5(MultipartFile file) throws IOException, NoSuchAlgorithmException;

    /**
     * 获取文件的扩展名
     *
     * @param file 要获取扩展名的文件
     * @return 文件的扩展名
     */
    String getFileExtension(MultipartFile file);

    /**
     * 上传文件并重命名
     *
     * @param file 要上传的文件
     * @return 处理结果
     */
    String renameFile(MultipartFile file) throws IOException, NoSuchAlgorithmException;
}
